package com.zone.service.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zone.common.core.annotation.Excel;
import com.zone.common.core.web.domain.BaseEntity;

/**
 * 车辆领用单对象 zone_vehicle_form
 * 
 * @author liuyang
 * @date 2025-11-19
 */
public class VehicleForm extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 车辆领用id */
    private Long id;

    /** 任务执行日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "任务执行日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date taskDate;

    /** 出库类型 0-非任务出库，1-ATM任务出库 2-zsws任务出库 */
    @Excel(name = "出库类型 0-非任务出库，1-ATM任务出库 2-zsws任务出库")
    private String outType;

    /** 路线ID（当出库类型为1或2的时候，分别对应zone_route表中的id） */
    @Excel(name = "路线ID", readConverterExp = "当=出库类型为1或2的时候，分别对应zone_route表中的id")
    private Long routeId;

    /** 司机id，关联zone_employees */
    @Excel(name = "司机id，关联zone_employees")
    private Long driverId;

    /** 车辆id，关联车辆表，获取车辆自编码，车牌号 */
    @Excel(name = "车辆id，关联车辆表，获取车辆自编码，车牌号")
    private Long vehicleId;

    /** 上次返回公里数 */
    @Excel(name = "上次返回公里数")
    private String kilometersLast;

    /** 任务状态（待领用、已领用） */
    @Excel(name = "任务状态", readConverterExp = "待=领用、已领用")
    private String status;

    /** 出库管理员 */
    @Excel(name = "出库管理员")
    private Long deliverBy;

    /** 领用时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "领用时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date receiveTime;

    /** 出发前公里数 */
    @Excel(name = "出发前公里数")
    private String kilometersBefore;

    /** 回来后公里数 */
    @Excel(name = "回来后公里数")
    private String kilometersAfter;

    /** 油耗(L) */
    @Excel(name = "油耗(L)")
    private String consumption;

    /** 归还时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "归还时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date returnTime;

    /** 入库管理员 */
    @Excel(name = "入库管理员")
    private Long receiveBy;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setTaskDate(Date taskDate) 
    {
        this.taskDate = taskDate;
    }

    public Date getTaskDate() 
    {
        return taskDate;
    }

    public void setOutType(String outType) 
    {
        this.outType = outType;
    }

    public String getOutType() 
    {
        return outType;
    }

    public void setRouteId(Long routeId) 
    {
        this.routeId = routeId;
    }

    public Long getRouteId() 
    {
        return routeId;
    }

    public void setDriverId(Long driverId) 
    {
        this.driverId = driverId;
    }

    public Long getDriverId() 
    {
        return driverId;
    }

    public void setVehicleId(Long vehicleId) 
    {
        this.vehicleId = vehicleId;
    }

    public Long getVehicleId() 
    {
        return vehicleId;
    }

    public void setKilometersLast(String kilometersLast) 
    {
        this.kilometersLast = kilometersLast;
    }

    public String getKilometersLast() 
    {
        return kilometersLast;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setDeliverBy(Long deliverBy) 
    {
        this.deliverBy = deliverBy;
    }

    public Long getDeliverBy() 
    {
        return deliverBy;
    }

    public void setReceiveTime(Date receiveTime) 
    {
        this.receiveTime = receiveTime;
    }

    public Date getReceiveTime() 
    {
        return receiveTime;
    }

    public void setKilometersBefore(String kilometersBefore) 
    {
        this.kilometersBefore = kilometersBefore;
    }

    public String getKilometersBefore() 
    {
        return kilometersBefore;
    }

    public void setKilometersAfter(String kilometersAfter) 
    {
        this.kilometersAfter = kilometersAfter;
    }

    public String getKilometersAfter() 
    {
        return kilometersAfter;
    }

    public void setConsumption(String consumption) 
    {
        this.consumption = consumption;
    }

    public String getConsumption() 
    {
        return consumption;
    }

    public void setReturnTime(Date returnTime) 
    {
        this.returnTime = returnTime;
    }

    public Date getReturnTime() 
    {
        return returnTime;
    }

    public void setReceiveBy(Long receiveBy) 
    {
        this.receiveBy = receiveBy;
    }

    public Long getReceiveBy() 
    {
        return receiveBy;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("taskDate", getTaskDate())
            .append("outType", getOutType())
            .append("routeId", getRouteId())
            .append("driverId", getDriverId())
            .append("vehicleId", getVehicleId())
            .append("kilometersLast", getKilometersLast())
            .append("status", getStatus())
            .append("deliverBy", getDeliverBy())
            .append("receiveTime", getReceiveTime())
            .append("kilometersBefore", getKilometersBefore())
            .append("kilometersAfter", getKilometersAfter())
            .append("consumption", getConsumption())
            .append("returnTime", getReturnTime())
            .append("receiveBy", getReceiveBy())
            .toString();
    }
}
